﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kiiro.Common.Entities;
using Kiiro.Common.Utility;

namespace Kiiro.Common.Interfaces
{
    public interface IEntity
    {
        EditType EditType
        {
            get;
            set;
        }

        List<ValidationMessage> EditTypeMessage
        {
            get;
            set;
        }

        Guid SiteCollectionId
        {
            get;
            set;
        }

        List<ValidationMessage> SiteCollectionIdMessage
        {
            get;
            set;
        }

        string ServerRelativeUrl
        {
            get;
            set;
        }

        List<ValidationMessage> ServerRelativeUrlMessage
        {
            get;
            set;
        }

        string Title
        {
            get;
            set;
        }

        List<ValidationMessage> TitleMessage
        {
            get;
            set;
        }

        string Description
        {
            get;
            set;
        }

        List<ValidationMessage> DescriptionMessage
        {
            get;
            set;
        }

        bool IsNew
        {
            get;
            set;
        }

        List<ValidationMessage> IsNewMessage
        {
            get;
            set;
        }

        DateTime CreatedDate
        {
            get;
            set;
        }

        List<ValidationMessage> CreatedDateMessage
        {
            get;
            set;
        }

        DateTime ModifiedDate
        {
            get;
            set;
        }

        List<ValidationMessage> ModifiedDateMessage
        {
            get;
            set;
        }

        User CreatedBy
        {
            get;
            set;
        }

        List<ValidationMessage> CreatedByMessage
        {
            get;
            set;
        }

        User ModifiedBy
        {
            get;
            set;
        }

        List<ValidationMessage> ModifiedByMessage
        {
            get;
            set;
        }

        bool IsValid ( );

        List<ValidationMessage> AllValidationErrors ( );

        void ClearValidationMessages ( );
    }
}

/*************************************************************************
 * 
 * $Log: /Internal Projects/Kiiro/Kiiro.Common/Interfaces/IEntity.cs $
 * 
 * 3     17/08/09 10:38a Camerons
 * Added check-in comments section
 * 
 ************************************************************************/